package com.info.zhiduoduo.repository.entity.foreign;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author bob
 * @since 2020-09-02
 */
@Data
@Accessors(chain = true)
@TableName("zdd_foreign_project")
public class ForeignProject extends Model<ForeignProject> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "project_id", type = IdType.AUTO)
    private Integer projectId;
    /**
     * 项目编号
     */
    @TableField("project_no")
    private String projectNo;
    /**
     * 项目名称
     */
    @TableField("project_name")
    private String projectName;
    /**
     * 项目简介，用于生成合同
     */
    @TableField("project_desc")
    private String projectDesc;
    /**
     * 企业ID
     */
    private Integer compid;
    /**
     * 自然人ID
     */
    private Integer crowdsourceid;
    /**
     * 自然人编号
     */
    @TableField("person_no")
    private String personNo;
    /**
     * 项目金额
     */
    private BigDecimal amount;
    /**
     * 服务费率
     */
    @TableField("service_rate")
    private Double serviceRate;
    /**
     * 服务费
     */
    @TableField("service_charge")
    private BigDecimal serviceCharge;
    /**
     * 企业应付金额
     */
    @TableField("company_deduct_amount")
    private BigDecimal companyDeductAmount;
    /**
     * 银行卡号
     */
    @TableField("acct_no")
    private String acctNo;
    /**
     * 银行名称
     */
    @TableField("bank_name")
    private String bankName;
    /**
     * 银行支行名称
     */
    @TableField("bank_branch_name")
    private String bankBranchName;
    /**
     * 项目文件路径
     */
    @TableField("project_file_url")
    private String projectFileUrl;
    /**
     * 创建时间
     */
    private String createtime;
    /**
     * 自然人项目状态:1:正常 2:失败
     */
    private Integer state;
    /**
     * 补充信息，若项目失败，则为失败原因
     */
    private String msg;
    /**
     * 代付状态，1：未付款，2：付款中，3：付款成功，4：付款失败
     */
    @TableField("pay_state")
    private Integer payState;
    /**
     * 开票状态，1：未开票，2：开票中，3：开票成功，4：开票失败
     */
    @TableField("invoice_state")
    private Integer invoiceState;
    /**
     * 开票记录表ID
     */
    @TableField("invoice_id")
    private Integer invoiceId;
    /**
     * 开票记录表ID
     */
    @TableField("pay_time")
    private Date payTime;

    @Override
    protected Serializable pkVal() {
        return this.projectId;
    }

}
